﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MattisMutilatedRoguelike
{
    public abstract class Creature
    {

        /// <summary>
        /// Creature's body and stuff here
        /// </summary>
        public Body Body
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Inventory related stuff
        /// </summary>
        public Inventory Inventory
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Hitpoints
        /// </summary>
        public int HP
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Max Hitpoints
        /// </summary>
        public int HPMax
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Identifier
        /// </summary>
        public Guid Id
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// How far can we see? A method?
        /// </summary>
        public int VisionRange
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Time related energy, 1000?
        /// </summary>
        public int Energy
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// default is 100
        /// </summary>
        public int Speed
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// Is level measured like this?
        /// </summary>
        public int Level
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// expaa!
        /// </summary>
        public int XP
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// "a creature"
        /// </summary>
        public string Description
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// for visualization: @, should we separate tehse
        /// </summary>
        public char Symbol
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// for visualization: Green
        /// </summary>
        public ConsoleColor Color
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        /// <summary>
        /// how combat works..?
        /// </summary>
        public int Defense
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }
    
        public virtual bool CanMove()
        {
            throw new System.NotImplementedException();
}

        /// <summary>
        /// Can fly?!
        /// </summary>
        /// <remarks>Use this to..</remarks>
        public virtual bool CanFly()
        {
            throw new System.NotImplementedException();
}

        public bool OpensDoors()
        {
            throw new System.NotImplementedException();
        }
    }
}
